/*
指针数组由若干个具有相同数据类型的指针变量构成的集合。
指针数组的一般说明形式：
<数据类型> *<指针数组名>[<大小>]；   指针数组名表示该指针数组的起始地址。
int *p[2];
1. 指针数组占用的内存空间：数量*指针变量占用的字节数（由系统决定）
2. 指针数组名加1移动的字节位数：指针变量占用的字节数（由系统决定）

a-b-c:10 20 30
10 20 30
0x7ffc0b60ab10 0x7ffc0b60ab14 0x7ffc0b60ab18
0x7ffc0b60ab10 0x7ffc0b60ab14 0x7ffc0b60ab18
sizeof:24
0x7ffc0b60ab20 0x7ffc0b60ab28
-----------------------------------------
BeiJing
ShangHai
GuangZhou

 */
#include<stdio.h>
int main(){
	int a = 10, b = 20, c = 30;
	int *p[3];

	p[0] = &a;
	p[1] = &b;
	p[2] = &c;

	printf("a-b-c:%d %d %d\n",a,b,c);
	printf("%d %d %d\n",*p[0],*p[1],*p[2]);
	printf("%p %p %p\n",&a,&b,&c);
	printf("%p %p %p\n",p[0],p[1],p[2]);
	
	printf("sizeof:%ld\n",sizeof(p));
	printf("%p %p\n",p,p+1);

	printf("-----------------------------------------\n");
	char *s[] = {"BeiJing","ShangHai","GuangZhou"};
	for(int i = 0 ; i < sizeof(s) / sizeof(char *) ; i++){
		printf("%s\n",s[i]);
	}
	return 0;

}
